package com.reebake.ideal.security.service;

import com.reebake.ideal.security.entity.UserDetailsEntity;
import com.reebake.ideal.security.entity.UserLoginLogEntity;
import com.reebake.ideal.security.entity.UserThirdPartyEntity;

public interface UserSecurityService {

    public UserDetailsEntity loadUserByUserId(String userId);

    public UserDetailsEntity loadUserByPhoneNumber(String phoneNumber);

    public UserDetailsEntity loadUserByEmail(String email);

    public UserDetailsEntity loadUserByUsername(String username);

    public UserDetailsEntity loadUserByThirdParty(String username, String registrationId);

    public void bindThirdParty(UserThirdPartyEntity userThirdPartyEntity);

    public void log(UserLoginLogEntity userLoginLogEntity);

    public void lock(String username);

    public UserDetailsEntity register(String username);
}
